showing 5 games
name | publisher(developer) | year arrow_downward | description | |
---|---|---|---|---|
3D Tic-Tac-Toe | IBM | ? | This is an unofficial port obtained through reverse-engineering | labelminimizeminimize |
Tic Tac Toe | ? | ? | THIS IS AN EXTREMELY INEFFICIENT PROGRAM FOR PLAYING TIC TAC TOE. HOWEVER, THE INEFFICIENCY IS JUSTIFIED BY THE FACT THAT IT PLAYS VERY POORLY, ALLOWING YOU TO BEAT IT OFTEN. TO HAVE THE COMPUTER MOVE FIRST, TYPE TO). THE BOARD WILL THEN BE PRINTED WITH AN O SHOWING THE COMPUTERS FIRST MOVE. TO ENTER YOUR MOVE, USE ALGEBRAIC NOTATION ENCLOSED IN PARENTHESES. THAT IS, TYPE (B 2) TO PLAY IN THE MIDDLE, (A 1) FOR THE UPPER LEFT CORNER, ETC. TO MAKE THE FIRST MOVE TYPE TX). AFTER THE CARRIAGE RETURN, ENTER YOUR MOVE. | labelminimizesubject |
Qubic | Digital Equipment Computer Users' Society | 1968 | Program code: [spoiler=open;close] 100' NAME--QUBIC 110' 120' DESCRIPTION--PLAYS 3-DIMENSIONAL TIC TAC TOE. 130' 140' SOURCE--UNKNOWN 150' 160' INSTRUCTIONS--TYPE "RUN" AND FOLLOW INSTRUCTIONS. 170' 180' 190' * * * * * * MAIN PROGRAM * * * * * * * * * * * 200' 210 PRINT "DO YOU WANT INSTRUCTIONS"; 220 INPUT C$ 230 IF C$="NO" THEN 320 240 IF C$="YES" THEN 270 250 PRINT "INCORRECT ANSWER. PLEASE TYPE 'YES' OR 'NO'"; 260 GOTO 220 270 PRINT "THE GAME IS TIC-TAC-TOE IN A 4 X 4 X 4 CUBE." 280 PRINT "EACH MOVE IS INDICATED BY A 3 DIGIT NUMBER, WITH EACH" 290 PRINT "DIGIT BETWEEN 1 AND 4 INCLUSIVE. THE DIGITS INDICATE THE" 300 PRINT "LEVEL, COLUMN, AND ROW, RESPECTIVELY, OF THE OCCUPIED PLACE." 310 DIM X(64),L(76),M(76,4),Y(16) 320 FOR I = 1 TO 16 330 READ Y(I) 340 NEXT I 350FOR I=1 TO 76 360FOR J = 1 TO 4 370 READM(I,J) 380 NEXT J 390 NEXT I 400 FOR I = 1 TO 64 410 LET X (I) =0 420 NEXT I 430 LET Z=1 440 PRINT "DO YOU WANT TO MOVE FIRST"; 450 INPUT S$ 460 IF S$="NO" THEN 630 470 IF S$="YES" THEN 500 480 PRINT "INCORRECT ANSWER. PLEASE TYPE 'YES' OR 'NO'."; 490 GOTO 450 500 PRINT " " 510 PRINT "YOUR MOVE"; 520INPUTJ1 530 GOSUB 2500 540 LETK1=INT(J1/100) 550 LET J2=(J1-K1*100) 560 LET K2=INT(J2/10) 570 LET K3= J1 - K1*100 -K2*10 580 LET M=16*K1+4*K2+K3-20 590 IF X(M)=0 THEN 620 600 PRINT "THAT SQUARE IS USED, TRY AGAIN" 610 GOTO 500 620 LET X(M)=1 630 GOSUB 1640 640 FOR J=1 TO 3 650 FOR I=1 TO 76 660 IF J=1 THEN 720 670 IF J=2 THEN 790 680 IF J=3 THEN 930 690 NEXT I 700 NEXTJ 710 GOTO 1300 720 IF L(I)<>4 THEN 690 730 PRINT "YOU WIN AS FOLLOWS"; 740 FOR J=1 TO 4 750 LET M=M(I,J) 760 GOSUB 1570 770 NEXT J 780 GOTO 1490 790 IF L(I)<>15 THEN 690 800 FOR J=1 TO 4 810 LET M=M(I,J) 820 IF X(M)<>0 THEN 860 830 LET X(M)=5 840 PRINT "MACHINE MOVES TO"; 850 GOSUB 1570 860 NEXT J 870 PRINT ", AND WINS AS FOLLOWS" 880 FOR J=1 TO 4 890 LET M=M(I,J) 900 GOSUB 1570 910 NEXT J 920 GOTO 1490 930 IF L(I)<>3 THEN 690 940 PRINT "NICE TRY MACHINE MOVES TO"; 950 FOR J=1 TO 4 960 LET M=M(I,J) 970 IF X(M)<>0 THEN 1010 980 LET X(M)=5 990 GOSUB 1570 1000 GOTO 500 1010 NEXT J 1020 GOTO 1300 1030 FOR I = 1 TO 76 1040 LET L(I)=X(M(I,1))+X(M(I,2))+X(M(I,3))+X(M(I,4)) 1050 LET L = L(I) 1060 IF L <2 THEN 1130 1070 IF L>=3 THEN 1130 1080 IF L>2 THEN 2230 1090 FOR J = 1 TO 4 1100 IF X(M(I,J))<>0 THEN 1120 1110 LET X(M(I,J))=1/8 1120 NEXT J 1130 NEXT I 1140 GOSUB 1640 1150 FOR I = 1 TO 76 1160 IF L(I)=1/2 THEN 2360 1170 IF L(I)=1+3/8 THEN 2360 1180 NEXT I 1190 GOTO 1830 1200LET Z = 1 1210 IF X(Y(Z))=0 THEN 1250 1220 LET Z=Z+1 1230 IF Z<>17 THEN 1210 1240 GOTO 1720 1250 LET M=Y(Z) 1260 LET X(M)=5 1270 PRINT "MACHINE MOVES TO"; 1280 GOSUB 1570 1290 GOTO 500 1300 LET X=X 1310 FOR I=1 TO 76 1320 LET L(I)=X(M(I,1))+X(M(I,2))+X(M(I,3))+X(M(I,4)) 1330 LET L=L(I) 1340 IF L<10 THEN 1410 1350 IF L>=11 THEN 1410 1360 IF L>10 THEN 2230 1370 FOR J=1 TO 4 1380 IF X(M(I,J))<>0 THEN 1400 1390 LET X(M(I,J))=1/8 1400 NEXT J 1410 NEXT I 1420 GOSUB 1640 1430 FOR I=1 TO 76 1440 IF L(I)=.5 THEN 2360 1450 IF L(I)=5+3/8 THEN 2360 1460 NEXT I 1470 GOSUB 2500 1480 GOTO 1030 1490 PRINT " " 1500 PRINT "DO YOU WANT TO TRY ANOTHER GAME"; 1510 INPUT X$ 1520 IF X$="YES" THEN 400 1530 IF X$="NO" THEN 1560 1540 PRINT "INCORRECT ANSWER. PLEASE TYPE 'YES' OR 'NO'"; 1550 GOTO 1510 1560 STOP 1570 LET K1=INT((M-1)/16)+1 1580 LET J2=M-16*(K1-1) 1590 LET K2=INT((J2-1)/4)+1 1600 LET K3=M-(K1-1)*16-(K2-1)*4 1610 LET M=K1*100+K2*10+K3 1620 PRINT M; 1630 RETURN 1640 FOR S=1 TO 76 1650 LET J1 = M(S,1) 1660 LET J2=M(S,2) 1670 LET J3=M(S,3) 1680 LET J4=M(S,4) 1690 LET L(S)=X(J1)+X(J2)+X(J3)+X(J4) 1700 NEXT S 1710 RETURN 1720 FOR I=1 TO 64 1730 IF X(I)<>0 THEN 1800 1740 LET X(I)=5 1750 LET M=I 1760 PRINT "MACHINE LIKES"; 1770 GOSUB 1570 1780 PRINT " " 1790 GOTO 500 1800 NEXT I 1810 PRINT "THE GAME IS A DRAW" 1820 GOTO 1490 1830 FOR K=1 TO 18 1840 LET P=0 1850 FOR I=4*K-3 TO 4*K 1860 FOR J=1 TO 4 1870 LET P=P+X(M(I,J)) 1880 NEXT J 1890 NEXT I 1900 IF P<4 THEN 1940 1910 IF P<5 THEN 1970 1920 IF P<9 THEN 1940 1930 IF P<10 THEN 1970 1940 NEXT K 1950 GOSUB 2500 1960 GOTO 1200 1970 LET S=1/8 1980 FOR I=4*K-3 TO 4*K 1990 GOTO 2370 2000 NEXT I 2010 LET S=0 2020 GOTO 1980 2030 DATA 1,49,52,4,13,61,64,16,22,39,23,38,26,42,27,43 2040DATA 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 2050 DATA 21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38 2060 DATA 39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56 2070 DATA 57,58,59,60,61,62,63,64 2080DATA1,17,33,49,5,21,37,53,9,25,41,57,13,29,45,61 2090 DATA 2,18,34,50,6,22,38,54,10,26,42,58,14,30,46,62 2100DATA 3,19,35,51,7,23,39,55,11,27,43,59,15,31,47,63 2110 DATA 4,20,36,52,8,24,40,56,12,28,44,60,16,32,48,64 2120 DATA 1,5,9,13,17,21,25,29,33,37,41,45,49,53,57,61 2130 DATA 2,6,10,14,18,22,26,30,34,38,42,46,50,54,58,62 2140 DATA 3,7,11,15,19,23,27,31,35,39,43,47,51,55,59,63 2150 DATA4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64 2160 DATA1,6,11,16,17,22,27,32,33,38,43,48,49,54,59,64 2170 DATA 13,10,7,4,29,26,23,20,45,42,39,36,61,58,55,52 2180 DATA1,21,41,61,2,22,42,62,3,23,43,63,4,24,44,64 2190DATA 49,37,25,13,50,38,26,14,51,39,27,15,52,40,28,16 2200DATA 1,18,35,52,5,22,39,56,9,26,43,60,13,30,47,64 2210DATA 49,34,19,4,53,38,23,8,57,42,27,12,61,46,31,16 2220DATA 1,22,43,64,16,27,38,49,4,23,42,61,13,26,39,52 2230 FOR J=1 TO 4 2240 IF X(M(I,J))<>1/8 THEN 2330 2250 LET X(M(I,J))=5 2260 IF L(I)<5 THEN 2290 2270 PRINT "LET'S SEE YOU GET OUT OF THIS: MACHINE MOVES TO"; 2280 GOTO 2300 2290 PRINT "YOU FOX. JUST IN THE NICK OF TIME, MACHINE MOVES TO"; 2300 LET M=M(I,J) 2310 GOSUB 1570 2320 GOTO 500 2330 NEXT J 2340 PRINT "MACHINE CONCEDES THIS GAME." 2350 GOTO 1490 2360 LET S=1/8 2370 IF I-INT(I/4)*4>1 THEN 2400 2380 LET A=1 2390 GOTO 2410 2400 LET A=2 2410 FOR J=A TO 5-A STEP 5-2*A 2420 IF X(M(I,J))=S THEN 2450 2430 NEXT J 2440 GOTO 2000 2450 LET X(M(I,J))=5 2460 LET M=M(I,J) 2470 PRINT "MACHINE TAKES"; 2480 GOSUB 1570 2490 GOTO 500 2500 FOR I=1 TO 64 2510 IF X(I)<>1/8 THEN 2530 2520 LET X(I)=0 2530 NEXT I 2540 RETURN 2550 END[/spoiler]***Qubic is a three dimensional Tic Tac Toe game written in BASIC. It was later collected in the book BASIC Computer Games. The game plays like Tic Tac Toe except instead of a 3x3 board there's a 4x4x4 board and the player and computer must try to get four in a row. The player decides if he goes first or second.***[media=youtube]asDxyWaqPBk[/media] | labelminimizesubject |
Time-Sharing Tic-Tac-Toe | Digital Equipment Computer Users' Society | 1970 | Time-Sharing Tic-Tac-Toe is a simple Tic-Tac-Toe game played against the computer. The player chooses to go first or not and can enter his mark on the fields named 1 through 9. Whoever gets three in a row wins.***Videogame Programm Files [spoiler=show source code;hide source code] 100' NAME--TICTAC 110' 120' DESCRIPTION--PLAYS GAME OF TIC-TAC-TOE 130' 140' SOURCE--UNKNOWN 150' 160' INSTRUCTIONS--TYPE "RUN" AND FOLLOW INSTRUCTIONS. 170' 180' 190' * * * * * * MAIN PROGRAM * * * * * * * * * * * 200' 210 PRINT "WELCOME TO TIME-SHARING TIC-TAC-TOE. THE BOARD IS LAID OUT" 220 PRINT "AS FOLLOWS:" 230 PRINT 240 PRINT "1 2 3" 250 PRINT "4 5 6" 260 PRINT "7 8 9" 270 PRINT 280 PRINT "WHEN THE MACHINE ASKS FOR YOUR MOVE, RESPOND WITH THE NUMBER" 290 PRINT "WHICH CORRESPONDS TO THE INTENDED SQUARE." 300 PRINT 310 DIM B(2,2) 320 FOR I = 0 TO 2 330 FOR J = 0 TO 2 340 LET B(I,J) = 0 350 NEXT J 360 NEXT I 370 LET P = 1 380 PRINT "DO YOU WANT ME TO GO FIRST (1 FOR YES, 0 FOR NO)"; 390 INPUT F 400 IF F = 0 THEN 430 410 PRINT "I PLAY X, YOU PLAY O" 420 GO TO 540 430 PRINT "YOU PLAY X, I PLAY O" 440 PRINT "YOUR MOVE: "; 450 GOSUB 780 460 GOSUB 1100 470 GOSUB 2290 480 GOSUB 1500 490 IF M <> 0 THEN 710 500 GOSUB 2290 510 GOSUB 1500 520 GOSUB 2290 530 IF M <> 0 THEN 710 540 LET M = 5 550 IF B(1,1) = 0 THEN 710 560 LET M = 1 570 IF B(0,0) = 0 THEN 710 580 LET M = 3 590 IF B(0,2) = 0 THEN 710 600 LET M = 7 610 IF B(2,0) = 0 THEN 710 620 LET M = 9 630 IF B(2,2) = 0 THEN 710 640 LET M = 2 650 IF B(0,1) = 0 THEN 710 660 LET M = 4 670 IF B(1,0) = 0 THEN 710 680 LET M = 6 690 IF B(1,2) = 0 THEN 710 700 LET M = 8 710 GOSUB 790 720 PRINT "I MOVE"M 730 GOSUB 910 740 GOSUB 1100 750 GOSUB 2290 760 GOTO 440 770 REM SUBROUTINE TO INPUT MOVES 780 INPUT M 790 IF M > 9 THEN 810 800 IF M > 0 THEN 830 810 PRINT "MOVE NOT ON BOARD. MOVE AGAIN: "; 820 GOTO 780 830 LET M1 = INT((M-1)/3) 840 LET M2 = M - 3*M1 - 1 850 IF B(M1,M2) = 0 THEN 880 860 PRINT "SQUARE ALREADY TAKEN. MOVE AGAIN: "; 870 GOTO 780 880 LET B(M1,M2) = P 890 RETURN 900 REM SUBROUTINE TO PRINT OUT T-T-T BOARD 910 FOR I = 0 TO 2 920 PRINT 930 FOR J = 0 TO 2 940 IF B(I,J) <> 0 THEN 970 950 PRINT "- "; 960 GOTO 1040 970 IF B(I,J) <> 1 THEN 1000 980 PRINT "X "; 990 GOTO 1040 1000 IF B(I,J) <> 2 THEN 1030 1010 PRINT "O "; 1020 GOTO 1040 1030 PRINT "? "; 1040 NEXT J 1050 NEXT I 1060 PRINT 1070 PRINT 1080 RETURN 1090 REM SUBROUTINE TO DETECT THAT PLAYER P HAS WON 1100 IF B(0,0) <> P THEN 1170 1110 IF B(0,1) <> P THEN 1130 1120 IF B(0,2) = P THEN 1390 1130 IF B(1,0) <> P THEN 1150 1140 IF B(2,0) = P THEN 1390 1150 IF B(1,1) <> P THEN 1170 1160 IF B(2,2) = P THEN 1390 1170 IF B(0,1) <> P THEN 1200 1180 IF B(1,1) <> P THEN 1200 1190 IF B(2,1) = P THEN 1390 1200 IF B(0,2) <> P THEN 1250 1210 IF B(1,1) <> P THEN 1230 1220 IF B(2,0) = P THEN 1390 1230 IF B(1,2) <> P THEN 1250 1240 IF B(2,2) = P THEN 1390 1250 IF B(1,0) <> P THEN 1280 1260 IF B(1,1) <> P THEN 1280 1270 IF B(1,2) = P THEN 1390 1280 IF B(2,0) <> P THEN 1310 1290 IF B(2,1) <> P THEN 1310 1300 IF B(2,2) = P THEN 1390 1310 FOR I = 0 TO 2 1320 FOR J = 0 TO 2 1330 IF B(I,J) <> 0 THEN 1350 1340 RETURN 1350 NEXT J 1360 NEXT I 1370 PRINT "***** DRAW *****" 1380 GOTO 1430 1390 IF P = 2 THEN 1420 1400 PRINT "***** X WINS *****" 1410 GOTO 1430 1420 PRINT "***** O WINS *****" 1430 PRINT 1440 PRINT 1450 PRINT 1460 PRINT "NEW GAME:" 1470 PRINT 1480 GOTO 310 1490 REM SUBROUTINE TO DETERMINE WINNING MOVES AND FORCED BLOCKS 1500 IF B(0,0) <> P THEN 1630 1510 IF B(0,1) <> P THEN 1530 1520 IF B(0,2) = 0 THEN 2140 1530 IF B(0,2) <> P THEN 1550 1540 IF B(0,1) = 0 THEN 2120 1550 IF B(1,1) <> P THEN 1570 1560 IF B(2,2) = 0 THEN 2260 1570 IF B(2,2) <> P THEN 1590 1580 IF B(1,1) = 0 THEN 2180 1590 IF B(1,0) <> P THEN 1610 1600 IF B(2,0) = 0 THEN 2220 1610 IF B(2,0) <> P THEN 1630 1620 IF B(1,0) = 0 THEN 2160 1630 IF B(0,1) <> P THEN 1720 1640 IF B(0,0) <> P THEN 1660 1650 IF B(0,2) = 0 THEN 2140 1660 IF B(0,2) <> P THEN 1680 1670 IF B(0,0) = 0 THEN 2100 1680 IF B(1,1) <> P THEN 1700 1690 IF B(2,1) = 0 THEN 2240 1700 IF B(2,1) <> P THEN 1720 1710 IF B(1,1) = 0 THEN 2180 1720 IF B(0,2) <> P THEN 1810 1730 IF B(1,1) <> P THEN 1750 1740 IF B(2,0) = 0 THEN 2220 1750 IF B(2,0) <> P THEN 1770 1760 IF B(1,1) = 0 THEN 2180 1770 IF B(1,2) <> P THEN 1790 1780 IF B(2,2) = 0 THEN 2260 1790 IF B(2,2) <> P THEN 1810 1800 IF B(1,2) = 0 THEN 2200 1810 IF B(1,0) <> P THEN 1880 1820 IF B(2,0) <> P THEN 1840 1830 IF B(0,0) = 0 THEN 2100 1840 IF B(1,1) <> P THEN 1860 1850 IF B(1,2) = 0 THEN 2200 1860 IF B(1,2) <> P THEN 1880 1870 IF B(1,1) = 0 THEN 2180 1880 IF B(1,1) <> P THEN 1970 1890 IF B(2,2) <> P THEN 1910 1900 IF B(0,0) = 0 THEN 2100 1910 IF B(2,0) <> P THEN 1930 1920 IF B(0,2) = 0 THEN 2140 1930 IF B(2,1) <> P THEN 1950 1940 IF B(0,1) = 0 THEN 2120 1950 IF B(1,2) <> P THEN 1970 1960 IF B(1,0) = 0 THEN 2160 1970 IF B(1,2) <> P THEN 2000 1980 IF B(2,2) <> P THEN 2000 1990 IF B(0,2) = 0 THEN 2140 2000 IF B(2,0) <> P THEN 2050 2010 IF B(2,1) <> P THEN 2030 2020 IF B(2,2) = 0 THEN 2260 2030 IF B(2,2) <> P THEN 2050 2040 IF B(2,1) = 0 THEN 2240 2050 IF B(2,1) <> P THEN 2080 2060 IF B(2,2) <> P THEN 2080 2070 IF B(2,0) = 0 THEN 2220 2080 LET M = 0 2090 RETURN 2100 LET M = 1 2110 RETURN 2120 LET M = 2 2130 RETURN 2140 LET M = 3 2150 RETURN 2160 LET M = 4 2170 RETURN 2180 LET M = 5 2190 RETURN 2200 LET M = 6 2210 RETURN 2220 LET M = 7 2230 RETURN 2240 LET M = 8 2250 RETURN 2260 LET M = 9 2270 RETURN 2280 REM SUBROUTINE TO FLIP-FLOP PLAYER P 2290 IF P = 1 THEN 2320 2300 LET P = 1 2310 RETURN 2320 LET P = 2 2330 RETURN 2340 END [/spoiler] | labelminimizesubject |
A Tic-Tac-Toe Game for your Elf Computer | Ziff-Davis | 1978 | labelminimizeminimize |